(PA-5849) Consistently use miniruby when native compiling ruby 3.2 #801
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ruby's build process requires a "base" ruby. We also need an executable ruby that can install gems into /opt/puppetlabs/puppet/lib.
Previously, native compilation used whatever system ruby happened to be present. Since each distro ships a different ruby, our build process used everything from ruby 2.7 to 3.1 and everything in between.
This inconsistency made it more likely for our rubygem components with native extensions to fail to install.
It also meant bumping to ruby 3.3 in the future could fail because that version requires base ruby 3.0 or later, but some system rubies are still 2.7.
Additionally, in the past we've made the mistake of using pl-ruby because we thought we had to.
This commit ensures we use miniruby for all native compiles. Doing so eliminates all of the issues mentioned.
When cross-compiling, we still have to use either system ruby or pl-ruby.
agent-runtime-main all platforms but solaris 11 SPARC
agent-runtime-main solaris 11 SPARC